One bug that kept annoying me with the perl debugger, was that sometimes in the middle of debugging a program, the content of the current line stopped appearing. Recently, I was able to reproduce it with an XML::RSS test file, and decided to investigate.
I delved into the debugger internals and found that it gets the contents of the file from a variable called @{main::_<myfile.pl} (which as I found out was populated for it by the perl interpreter). And as it turned out, by printing this value within the debugger after I reproduced the problem, I got a small number of completely different lines. I searched for them in the perl source tree, and found they belonged inside an eval "" call in a Test::Builder function. And as I saw this eval call had a #line myfile.pl directive. And writing a short program which did an eval with such a line as its filename reproduced the bug in a self-contained form.
So I reported this bug. I eventually found out (by grepping the perl 5 source) that it was caused by some code that was added to toke.c between perl 5.8.7 and perl 5.8.8, and which was disabled in a Perl using ithreads support. Then RGS fixed the bug (at least in bleadperl now).
But he didn't add a regression test. Since I had an idea for writing such a test, I wrote one and sent it along. It still is not ready for inclusion into the perl 5 core, because it does not follow the conventions of the tests there. But it's a start.
Happy debugging!